home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
WOW! 2
/
WOW - Vol 2.iso
/
pd_share
/
acc_2
/
phelp
/
calc.txt
< prev
Wrap
Text File
|
1991-11-04
|
12KB
|
271 lines
******************************************************************
* *
* Programer's Help *
* Das 1001 Multi-Accsessory für die Atari ST Reihe *
* (c) 1991 by Richard Kurz *
* Vogelherdbogen 62 *
* 7992 Tettnang *
* Telefon 07542/52908 *
* *
* TOS-Magazin, ICP Verlag GmbH & Co. KG *
* *
******************************************************************
Willkommen zu dem 1001 Multi-Accessory für den ST, STE, Mega-STE
und wahrscheinlich auch TT. Da ich leider keinen TT besitze und
auch keinen Besitzer eines solchen kenne, war es mir nicht möglich
Programmer's Help auf dem Sahneschnittchen zu testen. Da ich mich
aber an alle bekannten Richtlinien von Atari gehalten habe (man
merkt es auf dem kleinen ST am Bildschirmaufbau.. gähn), sollte
es auch auf dem TT oder diversen Beschleunigerkarten sowie auch
auf Großbildschirmen laufen. Die einzige Hardwarevoraussetzung ist
eine Bildschirmauflösung von mindestens 640*200 Punkten, will
heißen: Ab der mittleren ST-Auflösung läuft es prächtig. Der
Speicherverbrauch liegt bei cirka 100 Kb.
Was soll nun Programmer's Help ???
Tja, ich war einmal auf der Suche nach einem Taschenrechner, der
sollte als Accessory auf dem ST laufen und er sollte einen
Ausdruck wie 12+sin(1)*pi schlucken und berechnen können. Ergebnis:
NULL. Also Ärmel raufgekrämpelt, Ehefrau mit faulen Ausreden
beruhigt, an die Kiste gehechtet und selbst geschrieben. Leider
verfiel ich dem Programmierer-Wahnsinn und so wurde aus dem Rechner
ein Multi-Accessory mit folgendem Leistungsumfang:
Rechner mit doppelter Genauigkeit, BASIC-ähnlichem Formelparser,
12 Variablen, und vielen Funktionen wie: sin, sinh, asin, exp, log,
sqr, and, or, shl, usw.
ASCII-Tabelle mit Übernahme eines Zeichens in das aktuelle Programm,
wahlweise über Hotkey.
Notizblock mit 26 Seiten a 12 Zeilen, Suchfunktion, auch als kleine
Kartei zu verwenden.
Wecker mit 5 Alarmzeiten und Alarmwiederholung (stündlich, täglich,
monatlich oder jährlich).
Kalender von Jahre 1582 bis ins Jahr 3000.
Programmer's Help (PH) Version 1.2 wurde mit Turbo C 2.0 erstellt.
Es kann entweder als Accessory oder als Programm gestartet werden
(einfach die Endung ACC in PRG ändern). Am sinnvollsten scheint mir
der Start als ACC, also einfach CALC.ACC auf die Startdiskette bzw.
Festplatte kopieren und neu starten.
In der Menü-Leiste kann es nun unter Calculator aufgerufen werden.
Durch anklicken von EXIT kommt man immer eine Ebene zurück.
Mit dem Closer oder der Taste UNDO wird das Programm verlassen.
HELP oder die gleichnamige Taste zeigen zwei kleine Hilfstexte.
ASCII Stellt eine ASCII-Tabelle zur Verfügung.
NOTIZEN Ein kleiner Notizblock.
Die Bimmel 5 einstellbare Weckzeiten.
KALENDER Wie der Name schon spricht.
Die genauen Anleitungen zu den einzelnen Programmteilen gibt es auf
den folgenden Seiten. Viel Vergnügen!
Ich freue mich über jede Kritik und auch Verbesserungswünsche
interessieren mich. Also munter eure Meinung kund getan!
Der Rechner:
------------
Ich bilde mir zumindest ein, es handelt sich hierbei um ein leistungs-
fähiges Exemplar seiner Gattung (Eigenlob müffel müffel).
Die Eingabezeile wird ähnlich wie bei einem BASIC-Interpreter
ausgewertet. Es werden beinahe beliebig komplexe Ausdrücke geschluckt,
wie z.B.: - 21*&hff+((sin(0.8)+1)*2)
Selbstmurmelnd werden Punkt vor Strich und Klammersetzung korrekt
berücksichtigt.
Die Eingabezeile kann wie unter GEM üblich bearbeitet werden, sie
wird mit der Taste RETURN bzw. ENTER abgeschlossen. Die letzten neun
Eingabezeilen werden gespeichert. Durch anklicken der Pfeile neben
ENTER und BACKSPACE, wahlweise mit den Cursor-Tasten (UP, DOWN)
können diese wieder aufgerufen werden.
Es stehen 10 Variablen Namens M0-M9 zur Verfügung. Diesen Variablen
können durch eine Zuweisung wie M0=12+1 gesetzt werden. Bei der
späteren Verwendung wird einfach der Name der gewünschten Variable
eingesetzt.
Ferner stehen noch die Variablen X und Y zur Verfügung. Sie enthalten
jeweils die letzten beiden Ergebnisse.
Im Ergebnisfenster zeigen die obersten drei Zeilen das letzte Ergebnis
in den Zahlensystemen Binär, Hexadezimal und Oktal an. Die nächsten
sieben Zeilen zeigen die Ergebnisse wie ein Papierstreifen.
Durch Anklicken einer Zahl im Ergebnisfenster, wird diese in die
Eingabezeile übernommen.
Zahlen können durch Vorsatz von &h, &o, &b und &d in ihrem Zahlensystem
eingegeben werden. z.B.: &hFF würde 255 im Dezimalsystem ergeben.
Auch kann über die Buttons DEZ, HEX, OCT und BIN die Eingabezeile,
direkt in das jeweilige Zahlensystem geschaltet werden.
Der Button X <=> Y vertauscht die beiden Variablen.
Mit ACL wird der Rechner neu gestartet, alle Variablen werden auf
Null gesetzt.
CL löscht nur die Eingabezeile. In den meisten GEM-Versionen kann
dies auch durch drücken der ESC-Taste erreicht werden.
Der Button M0 - M9 führt zur Bearbeitung der Variablen. Dieser
Programmteil wird unter Variablen ausführlich erklärt.
Folgende Rechenarten und Funktionen stehen zur Verfügung:
Funktion Erklärung Beispiel Ergebnis
+ Plus 1+1 2
- Minus
* Mal
/ Geteilt
mod Modulo 7 mod 2 1
^ Potenz 5^3 125
shl 32 Bit nach links 1 shl 4 16
shr 32 Bit nach rechts schieben
and Und 7 and 2 2
or Oder
xor Exklusiv Oder
not Bitweise Negation not 7 -8
&h Hexadezimal-Zahl &hff 255
&o Oktal-Zahl &o10 8
&b Binär-Zahl &b111 7
&d Dezimal-Zahl &d300 300
pi Pi pi 3.14159....
e Eulersche Zahl
abs Absolut-Wert abs(-1) 1
acos Arcus Cosinus
asin Arcus Sinus
atan Arcus Tangens
cosh Cosinus hyperbolicus
cos Cosinus
exp Exponentialfunktion
log10 Dekadischer Logarithmus
log Natürlicher Logarithmus
pow10 10er-Potenz
round Runden round(1.6) 2
sinh Sinus hyperbolicus
sin Sinus
sqrt Quadratwurzel
sqr Quadrat
tanh Tangens hypebolicus
tan Tangens
trunc Abschneiden der trunc(1.6) 1
Nachkommastellen
Die Variablen:
--------------
Um es noch einmal in Erinnerung zu bringen: Dieser Programmteil wird
durch Anklicken des M0-M9 Buttons im Rechner angewählt.
Hier können die Werte der Variablen angesehen, geändert und in die
Eingabezeile übernommen werden.
Was das Ansehen betrifft, kann ich mir wohl die Erklärung schenken.
Durch anklicken eines Namens (z.B. M0) wird der Wert der Variablen
in die Eingabezeile übernommen (juchu).
In dem Eingabefeld hinter dem Namen, kann der neue Wert eingegeben
werden (Was für ein Satz). Es können auch beliebige Formeln wie
12+sin(1)*2 benutzt werden (Wie im normalen Rechner).
Die ASCII-Tabelle:
------------------
Dieses nette Teil stellt den Zeichensatz zur Verfügung.
Mit den < << >> > Buttons kann durchgeblättert werden.
Was nützt es mir nun wenn ich das Zeichen kenne, es aber nicht über
die Tastatur eingeben kann? Nichts ätsch. Aber wir haben ja nicht
irgendeine Zeichensatztabelle, nein wir haben Programmer's Help!
('tschuldigung das sind die Auswirkungen des modernen Werbefernsehens).
Also was tun? Ganz einfach: das gewünschte Zeichen anklicken und dann
entweder auf DIREKT oder SHIFT SHIFT klicken.
Wird der DIREKT Button angeklickt, schreibt BH Verzeihung PH das Zeichen
sofort in den Tastaturpuffer und beendet sich selbst.
Nun der Oberhammer: Da es auch in GEM-Programmen nicht immer möglich
ist ACC's aufzurufen, z.B. in Dialogboxen, und es mit der direkten
Übernahme auch nicht immer klappt (z.B. Calamus. Warum auch immer?),
kann das Zeichen auch über die Tastaturkombination Shift links und
Shift rechts in den Tastaturpuffer befördert werden.
Wird Shift Shift angeklickt geht PH in den Hintergrund und lauert
darauf, daß beide Shift-Tasten gleichzeitig gedrückt werden.
Dieser Zustand hält bis zum nächsten Aufruf über die Menüleiste an.
Der Notizblock:
---------------
Er ist aufgeteilt in 26 Seiten a 12 Zeilen. Die einzelnen Seiten
können durch Anklicken eines Buchstabens (A-Z) angewählt werden.
Natürlich kann man so auch eine kleine Telefonkartei oder ähnliches
einrichten. Die einzelnen Zeilen können je nach verwendeter GEM-
Version bearbeitet werden (z.B. die ESC-Taste löscht die Zeile).
Einziger Luxus: bei RETURN oder ENTER springt der Cursor in die
nächste Zeile.
Nun zu den Buttons:
CL Löschen einer Seite bzw. des ganzen Notizblockes.
PFEILE Eine Seite vor bzw. zurück.
LOAD Laden des Notizblockes von Disk (ASCII-Format).
SAVE Speichern des Notizblockes auf Disk (ASCII-Format).
SUCHEN Erlaubt es nach einem Text im Notizblock zu suchen. Je
nach gewählter Einstellung, vorwärts oder rückwärts,
mit Unterscheidung von Groß- und Kleinbuchstaben oder
ohne.
Der Wecker:
-----------
Wer kennt und verflucht ihn nicht?
Aber da ich alles um mich herum vergesse wenn ich an meiner Kiste
sitze, hielt ich einen Wecker für unbedingt nötig.
Dieses Exemplar stellt fünf Weckzeiten zur Verfügung. Jeder Alarm
kann entweder stündlich, täglich, monatlich oder jährlich wiederholt
werden.
Je nach eingestellter Wiederholrate werden natürlich nur die
sinnvollen Angaben von Datum und Zeit berücksichtigt (z.B. es
werden bei stündlicher Wiederholung nur die Minuten berücksichtigt).
Wenn ein Alarm aktuell ist (dies wird cirka zwei mal pro Minute
getestet) meldet sich PH mit einer Alert-Box, die den Text und die
Uhrzeit enthält.
Nun gibt es auf dem ST ja leider nicht nur GEM- sondern auch TOS-
und andere Programmarten. Solange GEM blockiert ist kann auch kein
Alarm ausgegeben werden. PH vergißt aber die Alarme nicht, sondern
meldet sich sobald GEM wieder läuft.
Bitte dran denken: nach einem RESET oder Absturz bzw. Ein- und
Ausschalten, sind die Alarme natürlich auch futsch.
Um die Folgen derartiger Unannehmlichkeiten etwas zu mindern, sind
die Buttons LOAD bzw. SAVE gedacht. Damit können die Alarmzeiten auf
Disk gesichert bzw. von dort geladen werden.
Wer den Alarmton schon einmal vorab hören möchte, kann ja ganz
unverbindlich auf die Überschrift ALARM klicken (Klassik-Fans mögen
mir verzeihen).
Der Kalender:
-------------
Mein ganzer Stolz! (Es war echt eine Freude das Ding zu basteln).
Dieser Kalender liefert gültige Daten vom Jahre 1582 bis zum Jahr
3000. Ich hoffe das reicht!
Mit den Buttons < und > wird jeweils einen Monat vor bzw. zurück-
geblättert, mit << und >> jeweils ein Jahr.
Es kann auch ein beliebiges Datum in das Eingabefeld geschrieben
werden. Durch anklicken des Eingabefeldes oder RETURN bzw. ENTER
springt der Kalender dann auf dieses Datum, vorausgesetzt es war
sinnvoll.
Wird ein bestimmter Wochentag angeklickt, erscheint dieser in der
Zeile über dem Kalender.